home *** CD-ROM | disk | FTP | other *** search
/ Resource for Source: C/C++ / Resource for Source - C-C++.iso / codelib9 / v_11_07 / stdfile.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-01  |  1017 b   |  40 lines

  1. /*** StdFile Class Implementation: stdfile.c ***/
  2.  
  3. #include "file.h"
  4. #include "stdfile.h"
  5.  
  6. CONSTRUCTOR(StdFile,(const char *name,const char *access))
  7.     CONSTRUCT(File,());
  8.     this->handle = fopen(name,access);
  9.     assert(this->handle);
  10. END_CONSTRUCTOR
  11.  
  12. DESTRUCTOR(StdFile)
  13.     fclose(this->handle);
  14. END_DESTRUCTOR
  15.  
  16. METHOD(StdFile, Seek, (long offset, int whence), long)
  17.     if (fseek(this->handle,offset,whence))
  18.         return -1;
  19.     return ftell(this->handle);
  20. END_METHOD
  21.  
  22. METHOD(StdFile, Read, (void *buffer, int nbytes), int)
  23.     if (fread(buffer,nbytes,1,this->handle) < 1)
  24.         return -1;
  25.     return nbytes;
  26. END_METHOD
  27.  
  28. METHOD(StdFile, Write, (void *buffer, int nbytes), int)
  29.     if (fwrite(buffer,nbytes,1,this->handle) < 1)
  30.         return -1;
  31.     return nbytes;
  32. END_METHOD
  33.  
  34. DEF_CLASS(StdFile,File)
  35.     REDEF_METHOD(StdFile,File,Seek);
  36.     REDEF_METHOD(StdFile,File,Read);
  37.     REDEF_METHOD(StdFile,File,Write);
  38.     REDEF_METHOD(StdFile,Object,destroy);
  39. END_CLASS
  40.